package com.situ.dao.cst_lost;
import java.util.List;

import com.situ.util.Assist;
import com.situ.entity.cst_lost.CstLost;

import org.apache.ibatis.annotations.*;
/**
 * CstLost的Dao接口
 * 
 * @author 
 *
 */
@Mapper
public interface CstLostDao {

	/**
	 * 获得CstLost数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getCstLostRowCount(Assist assist);
	
	/**
	 * 获得CstLost数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<CstLost> selectCstLost(Assist assist);
	/**
	 * 通过CstLost的id获得CstLost对象
	 * 
	 * @param id
	 * @return
	 */
	CstLost selectCstLostById(Long id);
	
	/**
	 * 获得一个CstLost对象,以参数CstLost对象中不为空的属性作为条件进行查询,返回符合条件的第一条
	 * 
	 * @param obj
	 * @return
	 */
	CstLost selectCstLostObjSingle(CstLost obj);
	
	/**
	 * 获得一个CstLost对象,以参数CstLost对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	List<CstLost> selectCstLostByObj(CstLost obj);

	/**
	 * 插入CstLost到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertCstLost(CstLost value);
	
	/**
	 * 插入CstLost中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNotNullCstLost(CstLost value);
	
	/**
	 * 批量插入CstLost到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertCstLostByBatch(List<CstLost> value);
	/**
	 * 通过CstLost的id删除CstLost
	 * 
	 * @param id
	 * @return
	 */
	int deleteCstLostById(Long id);
	
	/**
	 * 通过辅助工具Assist的条件删除CstLost
	 * 
	 * @param assist
	 * @return
	 */
	int deleteCstLostByAssist(Assist assist);
	
	/**
	 * 通过CstLost的id更新CstLost中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateCstLostById(CstLost enti);
	
	/**
	 * 通过CstLost的id更新CstLost中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNotNullCstLostById(CstLost enti);
	
	/**
	 * 通过辅助工具Assist的条件更新CstLost中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateCstLost(@Param("enti") CstLost value, @Param("assist") Assist assist);
	
	/**
	 * 通过辅助工具Assist的条件更新CstLost中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNotNullCstLost(@Param("enti") CstLost value, @Param("assist") Assist assist);

    List<CstLost> queryBylike(CstLost value);

    @Update("update cst_lost set lst_reason=#{lst_reason},lst_status=3 where lst_id=#{lst_id} ")
    void updateliu(CstLost value);

    @Update("update cst_lost set lst_delay=#{lst_delay},lst_status=2 where lst_id=#{lst_id} ")
    void updatecs(CstLost value);
}